/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package padroes_3;

import javax.swing.JOptionPane;

/**
 *
 * @author Delvoux
 */
public class CaixaEletronico {
    private Conta conta;
    private Banco banco;

    public boolean autentica(String senha, Banco banco){        
        for(int i=0; i < banco.getContas().size(); i++){
            if(senha.equals(banco.getContas().get(i).getSenha())){
                this.banco = banco;
                this.conta = banco.getContas().get(i);
                return true;
            }
        }
        return false;
    }

    public String saque(float valor){
        if(conta.saque(valor)){
            return "Saque efetuado com sucesso!";
        }else{
            return "Você não possui saldo disponível!";
        }
    }

    public String deposito(float valor){
        conta.deposito(valor);
        return "Deposito realizado com sucesso!";
    }

    public String saldo(){
        return "Saldo: "+this.conta.getSaldo();
    }

    public String nomeTitular(){
        return conta.getCliente().getNome();
    }

    public String transferir(String numero, String agencia, float valor){
        for (java.util.Iterator it = banco.getContas().iterator(); it.hasNext();) {
            Conta c = (Conta) it.next();
            if(c.getAgencia().getCodigo().equals(agencia)){
                if(c.getNumero().equals(numero)){
                    if(this.conta.saque(valor)){
                        c.deposito(valor);
                        return "Transferido R$"+valor+"\n"+this.nomeTitular()+" => "+c.getCliente().getNome();
                    }else return "Você não possui saldo suficiente.";
                }else return "O código da conta não existe.";
            }
        }
        return "A agência informada não existe.";
    }

    public String informacoes(){
        return "Agência: "+this.conta.getAgencia().getCodigo()+" - Número da Conta: "+this.conta.getNumero();
    }
}
